﻿using System;
using System.Linq;
using System.Text;
using DevExpress.Xpo;
using DevExpress.ExpressApp;
using System.ComponentModel;
using DevExpress.ExpressApp.DC;
using DevExpress.Data.Filtering;
using DevExpress.Persistent.Base;
using System.Collections.Generic;
using DevExpress.ExpressApp.Model;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;
using Tida.Module.BusinessObjects.系统管理;
using Tida.Module.BusinessObjects.客户管理;
using System.Drawing;

namespace Tida.Module.BusinessObjects.研发中心
{
    [NavigationItem("项目管理")]
    [XafDisplayName("项目")]
    [DefaultProperty("名称")]
    [DefaultClassOptions]
    public class 项目详情 : 系统管理.BaseInf
    { // Inherit from a different class to provide a custom primary key, concurrency and deletion behavior, etc. (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113146.aspx).
        public 项目详情(Session session)
            : base(session)
        {
        }
        public override void AfterConstruction()
        {
            base.AfterConstruction();
            // Place your initialization code here (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112834.aspx).

           this.编号= Tools.SerNumber.Number("XMQD");
        }



        // Fields...
        private string _名称;
        private decimal _工程师工时;
        private decimal _合计;
        private decimal _间接费用或劳动力;
        private decimal _专利费;
        private decimal _认证费;
        private decimal _新模费;
        private decimal _样品费;
        private string _产品规范及指标要求;
        private string _特别要求;
        private string _项目背景介绍;
        private string _产品描述;
        private Image _产品图片;
        private decimal _目标价格;
        private string _产品市场;
        private 开发优先级 _开发优先级;
        private DateTime _样品交付时间;
        private string _临时编号;
        private string _立项编号;
        private 客户信息 _客户;
        private string _编号;

        [Size(SizeAttribute.DefaultStringMappingFieldSize)]
        public string 名称
        {
            get
            {
                return _名称;
            }
            set
            {
                SetPropertyValue("名称", ref _名称, value);
            }
        }

        [Size(SizeAttribute.DefaultStringMappingFieldSize)]
        [ModelDefault("AllowEdit", "false")]
        public string 编号
        {
            get
            {
                return _编号;
            }
            set
            {
                SetPropertyValue("编号", ref _编号, value);
            }
        }

        [Association("项目详情-项目清单")]
        public XPCollection<项目清单> 项目清单
        {
            get
            {
                return GetCollection<项目清单>("项目清单");
            }
        }


        public 客户信息 客户
        {
            get
            {
                return _客户;
            }
            set
            {
                SetPropertyValue("客户", ref _客户, value);
            }
        }


        [Size(SizeAttribute.DefaultStringMappingFieldSize)]
        public string 立项编号
        {
            get
            {
                return _立项编号;
            }
            set
            {
                SetPropertyValue("立项编号", ref _立项编号, value);
            }
        }


        [Size(SizeAttribute.DefaultStringMappingFieldSize)]
        public string 临时编号
        {
            get
            {
                return _临时编号;
            }
            set
            {
                SetPropertyValue("临时编号", ref _临时编号, value);
            }
        }


        public DateTime 样品交付时间
        {
            get
            {
                return _样品交付时间;
            }
            set
            {
                SetPropertyValue("样品交付时间", ref _样品交付时间, value);
            }
        }

        public 开发优先级 开发优先级
        {
            get
            {
                return _开发优先级;
            }
            set
            {
                SetPropertyValue("开发优先级", ref _开发优先级, value);
            }
        }


        public string 产品市场
        {
            get
            {
                return _产品市场;
            }
            set
            {
                SetPropertyValue("产品市场", ref _产品市场, value);
            }
        }


        public decimal 目标价格
        {
            get
            {
                return _目标价格;
            }
            set
            {
                SetPropertyValue("目标价格", ref _目标价格, value);
            }
        }


        public Image 产品图片
        {
            get
            {
                return _产品图片;
            }
            set
            {
                SetPropertyValue("产品图片", ref _产品图片, value);
            }
        }



        public string 产品描述
        {
            get
            {
                return _产品描述;
            }
            set
            {
                SetPropertyValue("产品描述", ref _产品描述, value);
            }
        }

        public string 项目背景介绍
        {
            get
            {
                return _项目背景介绍;
            }
            set
            {
                SetPropertyValue("项目背景介绍", ref _项目背景介绍, value);
            }
        }


        public string 特别要求
        {
            get
            {
                return _特别要求;
            }
            set
            {
                SetPropertyValue("特别要求", ref _特别要求, value);
            }
        }



        public string 产品规范及指标要求
        {
            get
            {
                return _产品规范及指标要求;
            }
            set
            {
                SetPropertyValue("产品规范及指标要求", ref _产品规范及指标要求, value);
            }
        }


        public decimal 样品费
        {
            get
            {
                return _样品费;
            }
            set
            {
                SetPropertyValue("样品费", ref _样品费, value);
            }
        }


        public decimal 新模费
        {
            get
            {
                return _新模费;
            }
            set
            {
                SetPropertyValue("新模费", ref _新模费, value);
            }
        }


        public decimal 认证费
        {
            get
            {
                return _认证费;
            }
            set
            {
                SetPropertyValue("认证费", ref _认证费, value);
            }
        }



        public decimal 专利费
        {
            get
            {
                return _专利费;
            }
            set
            {
                SetPropertyValue("专利费", ref _专利费, value);
            }
        }

        public decimal 间接费用或劳动力
        {
            get
            {
                return _间接费用或劳动力;
            }
            set
            {
                SetPropertyValue("间接费用或劳动力", ref _间接费用或劳动力, value);
            }
        }

        public decimal 合计
        {
            get
            {
                return _合计;
            }
            set
            {
                SetPropertyValue("合计", ref _合计, value);
            }
        }


        public decimal 工程师工时
        {
            get
            {
                return _工程师工时;
            }
            set
            {
                SetPropertyValue("工程师工时", ref _工程师工时, value);
            }
        }

        

    }
    public enum 开发优先级
    {
        高级 = 0,
        中级 = 1,
        低级 = 2
    }
}